下面是小弟的短見... 還請大師們揪正~
non-blocking I/O 的 read/write 行為方式 --
當宅男發送 Line 訊息給正妹時,不管是未讀/已讀不回,他都會不斷 retry 送出 Line 訊息的動作,再試一次。
Asynchronous Callbacks 的行為方式--
當名作家和小三幽會時,會等到忙完,再把手機收到的Line進行回訊...
non-blocking I/O 的 read/write 行為方式 --
當宅男發送 Line 訊息給正妹時,不管是未讀/已讀不回,他都會不斷 retry 送出 Line 訊息的動作,再試一次。
這類狀況正妹會收到一坨message,並不是只收到一個message,所以應該視為multi incident,而非non-blocking I/O吧....
non-blocking I/O在實作上,應該是I/O機制是在一個(或數個)獨立的Thread上運作,使用I/O時只是呼叫他去動作,讓他動作完成時來通知,所以不用等待。
callback跟非同步並沒有直接關係,他只是提供接下來的要執行的動作給處理對象呼叫,並不一定是非同步的。例如我們呼叫一個同步的函數,然後傳callback給他,而這個函數在呼叫callback的時候,也是用同步的方式,那整個過程就都是同步的。傳給事件的callback函數,因為事件的觸發本身就是非同步的,所以可能會讓人以為使用callback就是非同步,其實不是這樣。